#include <QApplication>
#include <QDomDocument>
//#include <QtGui>
//#include <QtCore>
#include <QLabel>
#include <QFile>

#include "xml.h"

void p(QDomNode node,int level)
{
  for(int i=0;i<level;i++)printf("-");
  printf("%s: %s '%s' (%d)",__FUNCTION__,
    node.nodeName().toAscii().data(),
    node.toElement().attribute("name").toAscii().data(),
    node.childNodes().count());
  for(int i=0;i<node.toElement().attributes().count();i++)
    printf(" | %s='%s'",
      node.toElement().attributes().item(i).nodeName().toAscii().data(),
      node.toElement().attributes().item(i).nodeValue().toAscii().data());
  printf("\n");
  for(int i=0;i<node.childNodes().count();i++)
    p(node.childNodes().item(i),level+1);
}

void o(QDomNode node)
{
  for(int i=0;i<node.childNodes().count();i++)
  if (node.childNodes().item(i).nodeName()=="object")
  printf("%s\n",node.childNodes().item(i).toElement().attribute("name").toAscii().data());
}

void s(QDomNode node)
{
  for(int i=0;i<node.childNodes().count();i++)
  if(node.childNodes().item(i).nodeName()=="objects")
  //for(int j=0;j<node.childNodes().item(i).childNodes().count();j++)
  //p(node.childNodes().item(i).childNodes().item(j),5);
  o(node.childNodes().item(i));
}

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QFile file("xml.xml"); if (!file.open(QIODevice::ReadOnly)) { printf("error open xml\n"); return -1; }
    QDomDocument document; if (!document.setContent(&file)) { printf("error set xml\n"); return -1; }
    file.close();
    QDomNode node = document.firstChild(); //p(node,0);
    if (node.nodeName()!="syster") { printf("error xml root name <%s>\n",node.nodeName().toAscii().data()); return -1; }
    for(int i=0;i<node.childNodes().count();i++) s(node);
    return app.exec();
}
